home *** CD-ROM | disk | FTP | other *** search
- #ifndef __ICB
- #define __ICB
-
- #include "RES.H"
-
- typedef long LONG;
- typedef void VOID;
- typedef int WORD;
- #define UBYTE unsigned char
- #define UWORD unsigned int
- #define BYTE char
-
- /* alle Zeiger auf Routinen erwarten ihre Parameter im */
- /* Turbo-/Pure-C-Format: WORD-Parameter in ihrer Reihenfolge in */
- /* den Registern d0-d2, Zeiger in den Registern a0-a1 */
- typedef struct
- {
- /* Versionsnummer in ASCII */
- LONG id; /* erst ab Version 1.37 */
- /* Zeiger auf Routine zur */
- /* Auflösungsumschaltung */
- VOID (*p_chres)(RESOLUTION *res);
- WORD mode; /* Auflösungstyp: */
- /* 0: 16 Farben */
- /* 1: 2 Farben */
- /* 2: 256 Farben */
- /* 3: 32768 Farben */
- WORD bypl; /* Bytes pro Bildschirmzeile */
- WORD planes; /* Anzahl Bildschirmplanes: */
- /* 1, 4, 8 oder 16 */
- WORD colors; /* Anzahl Farben (Achtung: bei */
- /* 32768 negativ, da Inhalt $8000 */
- WORD hc; /* Hardcopymodus: */
- /* 0: 1 Bildpxl. = 1x1 Druckpxl. */
- /* 1: 1 Bildpxl. = 2x2 Druckpxl. */
- /* 2: 1 Bildpxl. = 4x4 Druckpxl. */
- WORD max_x, max_y; /* Bildschirmauflösung */
- /* für virtuelle Bildschirm- */
- /* verwaltung: */
- WORD rmn_x, rmx_x; /* physikalisch auf dem Monitor */
- WORD rmn_y, rmx_y; /* dargestellter Bereich */
-
- UBYTE *scr_base; /* Zeiger auf physikalische */
- /* Bildschirmadresse */
- UBYTE *reg_base; /* Zeiger auf I/O-Adressen */
- BYTE name[36]; /* Name der aktuellen Auflösung */
-
- LONG bl_count; /* Zähler für Dunkelschaltung */
- /* Startwert für Zähler in */
- LONG bl_max; /* 1/200stel Sekunden */
- WORD bl_on; /* != 0: Bildschirm ist dunkel */
-
- WORD card; /* Graphikkartentyp: */
- /* 0: max. 256 Farben, 64 Abst. */
- /* 2: max. 32k Farben, 256 Abst. */
- UBYTE speed_tab[12]; /* Maus-Beschleunigungstabelle */
-
- /* virtuelle Bildschirmverwaltung: */
- /* es wird getestet, ob der Punkt */
- /* (x;y) sich im dargestellten */
- /* Bildabschnitt befindet */
- /* falls nicht, wird der darge- */
- /* stellte Abschnitt so verschoben, */
- /* daß der Punkt gerade sichtbar */
- /* wird */
- VOID (*chng_vrt)(WORD x, WORD y);
- WORD boot_drv; /* Laufwerk, von dem der Imagine- */
- /* Treiber gestartet wurde */
- /* Hier befindet sich auch die */
- /* Auflösungsdatei (im AUTO-Ordner) */
-
- LONG (*set_vec)(VOID); /* Ausgabevektoren neu setzen */
- /* muß im Supervisormodus auf- */
- /* gerufen werden */
-
- VOID *main_work; /* Zeiger auf 1. VDI-Wkst. */
- WORD (*handler)(WORD x, LONG y);/* Zeiger auf Funktionshandler */
- /* ebenfalls im Supervisormodus */
- /* aufrufen */
- VOID (*init_col)(VOID); /* Zeiger auf Farbinitialisierung */
- UWORD scrn_cnt; /* Anzahl Bildschirme */
- LONG scrn_sze; /* Größe eines Bildschirms in Bytes */
- VOID *base; /* Adresse von Bildschirmseite 0 */
- VOID (*p_setscr)(VOID *adr); /* Zeiger auf Routine, die */
- /* neue physikalische Bildschirm- */
- /* adresse setzt */
- WORD v_top, v_bottom, /* Ränder für virt. Speicherverwaltung */
- v_left, v_right;
- } ICB;
-
- #endif